package com.badminton.web.service;

import com.badminton.web.model.TagWeightDO;
import com.badminton.web.model.UserDO;
import com.badminton.web.model.UserEvaluateDO;
import com.badminton.web.model.request.*;
import com.badminton.web.model.response.QueryUserEvaluateInfoResponseVO;
import com.badminton.web.model.response.QueryUserInfoResponseVO;

import java.util.List;

/**
 * @Author: peng.chen
 * @CreateTime: 2025-02-11
 * @Description:
 * @Version: 1.0.0
 */
public interface IBadmintonService {
    /**
     * 用户注册
     * @return
     */
    Long register(RegisterRequestVO registerRequestVO);

    /**
     * 用户登陆
     * @return
     */
    Long login(LoginRequestVO loginRequestVO);

    /**
     * 获取用户信息
     * @return
     */
    QueryUserInfoResponseVO queryUserInfo(QueryUserInfoRequestVO queryUserInfoRequestVO);

    /**
     * 更新用户信息
     * @return
     */
    Boolean updateUserInfo(UpdateUserInfoRequestVO updateUserInfoRequestVO);

    /**
     * 获取用户评价信息
     * @return
     */
    QueryUserEvaluateInfoResponseVO queryUserEvaluateInfo(QueryUserEvaluateInfoRequestVO queryUserEvaluateInfoRequestVO);

    /**
     * 用户匹配
     * @return
     */
    Long match(Long id);

    /**
     * 用户评价
     * @return
     */
    Boolean evaluate(EvaluateRequestVO evaluateRequestVO);

    /**
     * 获取标签权重信息
     * @return
     */
    List<TagWeightDO> queryTagWeightInfo();

    /**
     * 更新标签权重信息
     * @return
     */
    Boolean updateTagWeightInfo(UpdateTagWeightInfoRequestVO updateTagWeightInfoRequestVO);
}
